package com.fr.report.script.core.parser;

import com.fr.report.script.Calculator;
import com.fr.report.script.Primitive;

public class Expression extends AbstractNode
{
  ConditionalOrExpression conditionalExpression;

  Expression(ConditionalOrExpression paramConditionalOrExpression)
  {
    this.conditionalExpression = paramConditionalOrExpression;
  }

  public Object eval(Calculator paramCalculator)
    throws UtilEvalError
  {
    if (this.conditionalExpression == null)
      throw new InterpreterError("conditionalExpression should not be null");
    Object localObject = this.conditionalExpression.eval(paramCalculator);
    if (localObject == null)
      localObject = Primitive.NULL;
    return localObject;
  }

  public void traversal4Tiny(TinyHunter paramTinyHunter)
  {
    this.conditionalExpression.traversal4Tiny(paramTinyHunter);
  }

  public String exString(Calculator paramCalculator)
  {
    return this.conditionalExpression.exString(paramCalculator);
  }

  public String toString()
  {
    return this.conditionalExpression.toString();
  }

  public String getExpression(int paramInt1, int paramInt2, int paramInt3, int paramInt4, boolean paramBoolean)
  {
    return this.conditionalExpression.getExpression(paramInt1, paramInt2, paramInt3, paramInt4, paramBoolean);
  }

  public String[] parserParameter()
  {
    return this.conditionalExpression.parserParameter();
  }
}